from pyquery import PyQuery as pq
html = """
<html>
    <head>
        我爱我的祖国
        <title>China</title>
    </head>
    <body>
        <ul id="container">
            <li class="li1">五星</li>
            <li class="li2">红旗</li>
            <li class="li3">迎风飘扬啊</li>
        </ul>
    </body>
</html>
"""
# doc = pq(html)
# print(type(doc))
# print(doc)
# 初始化文件，只需要加个 filename 参数，指明 文件路径即可 test_html = pq(filename='test.html') test_txt = pq(filename='test.txt')

# 我们可以把请求的网址内容初始化为 PyQuery 对象，只需要加个参数 url ，将网址赋值给它即可
# response = pq(url='https://www.baidu.com')
# print(type(response))
# print(response)

# TODO  常用 CSS 选择器
# doc = pq(html)
# print(type(doc('#container')))
# print(doc('#container'))

# class 选择器
# doc = pq(html)
# print(type(doc('.li2')))
# print(doc('.li2'))

# 多层选择器
# doc = pq(html)
# print(doc('html #container'))

# CSS 选择器修改 HTML 标签的内容 一般不会用到  主要是解析HTML内容
# doc = pq(html)
# li2 = doc('.li2')
# li2.css('font-size', '18px')
# print(li2)

# TODO 伪类选择器
# pseudo_doc = pq(html)
# print(pseudo_doc('li:nth-child(2)'))
# #打印第一个li标签
# print(pseudo_doc('li:first-child'))
# #打印最后一个标签
# print(pseudo_doc('li:last-child'))

# contains 方法来筛选内容
# pseudo_doc = pq(html)

#找到含有Python的li标签
# print(pseudo_doc("li:contains('五星')"))
# # 找到含有好的li标签
# print(pseudo_doc("li:contains('红')"))
# # 找到含有啊的li标签
# print(pseudo_doc("li:contains('啊')"))

# TODO 查找标签 类似于 BeautifulSoup 中的 find 方法
doc = pq(html)
# #打印id为container的标签
# print(doc.find('#container'))

# 查找父标签，我们可以用 parent 方法
#打印id为container的标签的父标签
# container = doc.find('#container')
# print(container.parent())

# 查找兄弟标签，我们用 siblings 方法
# li2 = doc.find('.li2')
# print(li2.siblings())

# TODO 标签信息的提取
# 获取li2的class属性值
# print(doc('.li2').attr('class'))
# 获取li2的文本
# print(doc('.li2').text())
# 获取html标签下面的所有文本
# print(doc('html').text())
# 排除部分标签文本
# tag = doc('html')
# tag.remove('title')
# print(tag.text())

# TODO PyQuery 处理复杂的网址请求
cookies = {'Cookie':'cookie'}
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}

response = pq(url='https://www.baidu.com',headers=headers,cookies=cookies)
print(response)

# 官网详细查看，官网地址： https://pythonhosted.org/pyquery/ 。

